/* 
 * GrayRabbit Cms基于J2EE架构内容管理系统
 * Copyright © GrayRabbit Co., Ltd. All rights reserved.
 * Department：运营部
 * 更多信息，请visit:
 * http://code.google.com/p/gray-rabbit-cms/
 */
package org.grayrabbit.cms.dao.site; 

import java.util.List;

import org.grayrabbit.cms.entity.Site;
import org.grayrabbit.cms.vo.site.SiteBean;

import org.grayrabbit.dao.GenericDao;
import org.grayrabbit.dao.util.Page;
import org.grayrabbit.dao.util.QueryCondition;

/**
 * <b>Site</b>的DAO接口

 * @version 1.0,创建时间:2011-05-16 15:11:17 
 */
public interface SiteDao extends GenericDao<Site, String>{
	
	/**
	 * 根据bean组装查询条件
	 */
	public QueryCondition assembly(SiteBean bean);
	/**
	 * 根据bean组装统计查询条件
	 */
	public QueryCondition assemblyCount(SiteBean bean);
	public int count(SiteBean bean);
	/**
	 * 根据bean组装查询条件(名称参数)
	 */
	public QueryCondition assermblyNameQuery(SiteBean bean);
	
	/**
	 * 根据bean组装统计查询条件(名称参数)
	 */
	public QueryCondition assemblyNameQueryCount(SiteBean bean);
	/**
	 * 填充分页组件
	 * @param page
	 * @param bean
	 */
	public List<Site> findByPage(Page<Site> page, SiteBean bean);
	/**
	 * 查询所有记录
	 * @param page
	 * @param bean
	 * @return
	 */
	public List<Site> findByPage(SiteBean bean);
	
	/**
	 * 检查站点名称唯一性
	 * @param role
	 * @return
	 */
	public Boolean checkNameUnique(String  siteName,String stname);
	/**
	 * 检查站点简称名称唯一性
	 * @param role
	 * @return
	 */
	public Boolean checkSimplenameunique(String siteShortName,String oldname);
	
	public List<Site> findAllUsableSite();
	/**
	 * 根据不同权限类型:站点级、栏目级、专题级以及相应的对象id以逗号相连的字符串，获取启用的站点集合
	 * @param type
	 * @param ids
	 * @return
	 */
	public List<Site> findByTypeAndId(String type,String ids);
	/**
	 *   是否有站点引用该主题  有返回 true
	 * **/
	public boolean findSiteByTheme(String themeName);
	public String findSiteDomain(String siteArea);
}